package com.woniu.controller;

import com.woniu.been.entity.TLogin;
import com.woniu.been.entity.vo.TLoginVo;
import com.woniu.service.TLoginService;
import com.woniu.utils.PageResult;
import com.woniu.utils.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;


@RestController
@RequestMapping("/api/TLoginController")
@CrossOrigin
public class TLoginController {

    @Autowired
    private TLoginService tLoginService;

    /*
    * 添加老师登录信息 记录到日志中
    * */
    @PostMapping("addlogininfo")
    public void addlogininfo(@RequestBody TLogin tLogin) throws UnknownHostException {
        // 获取本地主机的 InetAddress 对象
        InetAddress localHost = InetAddress.getLocalHost();
        // 获取 IP 地址
        String ipAddress = localHost.getHostAddress();
        tLogin.setLoginIp(ipAddress);
        System.out.println("日志信息"+tLogin);
        tLoginService.addLogin(tLogin);
    }
    /*
    * 加入退出时间的日志信息
    * */
    @PostMapping("addlogoutinfo")
    public void addlogoutinfo(@RequestBody TLogin tLogin){
        tLoginService.addlogoutinfo(tLogin.getId());
    }
    /*
    * 根据登录人姓名查询所有该用户的登录日志--找到后集合的最后一个就是该用户的登录信息 在其基础上添加退出时间
    * */
    @PostMapping("findTLoginByLoginName")
    public void findTLoginByLoginName(@RequestBody TLogin tLogin){
         List<TLogin>  list = tLoginService.findTLoginByLoginName(tLogin.getLoginName());
         addlogoutinfo(list.get(list.size()-1));
    }

    /*
    * 用户如果在登陆过程中修改了用户名 那么登录时添加的信息需要被修改
    * */
    @GetMapping("updateTLogin")
    public ResponseResult<Void> updateTLogin(@RequestParam String loginName,@RequestParam String updateName){
        System.out.println("loginName================="+ loginName);
        System.out.println("updateName================="+ updateName);
        List<TLogin>  list = tLoginService.findTLoginByLoginName(loginName);
        Integer id=list.get(list.size()-1).getId() ;
        tLoginService.updateTLogin(updateName, id);
        return ResponseResult.success();
    }
    /*

    * 分页查询老师登录日志
    * */
    @PostMapping("findAllTLogin")
    public ResponseResult<PageResult> findAllTLogin(@RequestBody TLoginVo tLoginVo){
        PageResult result = tLoginService.findAllTLogin(tLoginVo,tLoginVo.getPageNum(), tLoginVo.getPageSize());
        return ResponseResult.success(result);
    }
    /*
    * 根据id删除老师登录日志
    * */
    @DeleteMapping("deleteTLogin")
    public ResponseResult<Void> deleteTLogin(Integer id){
        tLoginService.deleteTLogin(id);
        return ResponseResult.success();
    }
}
